package com.weixin.pay;

import java.io.InputStream;

/**
 * 固定配置信息
 */
public class WeiXinPayConfigure {

    // 这个就是自己要保管好的私有Key了（切记只能放在自己的后台代码里，不能放在任何可能被看到源代码的客户端程序中）
    // 每次自己Post数据给API的时候都要用这个key来对所有字段进行签名，生成的签名会放在Sign这个字段，API收到Post数据的时候也会用同样的签名算法对Post过来的数据进行签名和验证
    // 收到API的返回的时候也要用这个key来对返回的数据算下签名，跟API的Sign数据进行比较，如果值不一致，有可能数据被第三方给篡改
    private String key;

    //微信分配的公众号ID（开通公众号之后可以获取到）
    private String appID;

    //微信支付分配的商户号ID（开通公众号的微信支付功能之后可以获取到）
    private String mchID;

    //受理模式下给子商户分配的子商户号
    private String subMchID;

    //HTTPS证书的本地路径
    private InputStream certLocalPath;

    //HTTPS证书密码，默认密码等于商户号MCHID
    private String certPassword;

    //机器IP
    private String ip;

    private WeiXinPayConfigure() {
    }

    public WeiXinPayConfigure(String key, String appID, String mchID, InputStream certLocalPath, String certPassword) {
        this.key = key;
        this.appID = appID;
        this.mchID = mchID;
        this.certLocalPath = certLocalPath;
        this.certPassword = certPassword;
    }

    public WeiXinPayConfigure(String key, String appID, String mchID, String subMchID, InputStream certLocalPath, String certPassword, String ip) {
        this.key = key;
        this.appID = appID;
        this.mchID = mchID;
        this.subMchID = subMchID;
        this.certLocalPath = certLocalPath;
        this.certPassword = certPassword;
        this.ip = ip;
    }

    public String getKey() {
        return key;
    }

    public void setKey(String key) {
        this.key = key;
    }

    public String getAppID() {
        return appID;
    }

    public void setAppID(String appID) {
        this.appID = appID;
    }

    public String getMchID() {
        return mchID;
    }

    public void setMchID(String mchID) {
        this.mchID = mchID;
    }

    public String getSubMchID() {
        return subMchID;
    }

    public void setSubMchID(String subMchID) {
        this.subMchID = subMchID;
    }

    public InputStream getCertLocalPath() {
        return certLocalPath;
    }

    public void setCertLocalPath(InputStream certLocalPath) {
        this.certLocalPath = certLocalPath;
    }

    public String getCertPassword() {
        return certPassword;
    }

    public void setCertPassword(String certPassword) {
        this.certPassword = certPassword;
    }

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }
}
